The present invention relates in general to a parallel processing system and in particular to a parallel processing system that allows programs executing common procedures to carry out operations such as creation, use, updating and deletion of the procedures.
In general, for processing that is to be carried out by a variety of programs executed in a conventional system, and in particular, for typical processing that is supposed to be carried out by the great majority of programs such as basic input/output processing or basic arithmetic processing, common standard procedures have been determined in advance. Some of the procedures impose the following conditions:
(1) A procedure can be used by a plurality of programs at the same time.
(2) When at least one program is using a procedure, an operation to update or delete the procedure by another program is absolutely prohibited.
(3) While a program is creating a procedure, an operation to create the procedure by another program is absolutely prohibited.
(4) While a program is updating a procedure, an operation to use, update and delete the procedure by another program is absolutely prohibited.
In one of the conventional techniques for executing sharing and exclusive control of the procedures having the conditions described above, the states of all procedures are controlled by one central procedure management unit. According to this conventional technique, the central procedure management unit controls the procedures by cataloging two types of state attributes in a procedure management table. One of the state attributes is xe2x80x98a procedure-being-used statexe2x80x99 which indicates that a procedure is being used by a program in execution. The other state attribute is xe2x80x98a procedure-being-updated statexe2x80x99 which indicates that a procedure is being created or updated by a program in execution.
FIG. 8 is a diagram showing a typical schematic configuration of a conventional parallel processing system. As shown in the figure, a plurality of subsystems are connected to each other through a special subsystem, which is a subsystem for management use. To be more specific, the special subsystem serves as a central subsystem for controlling the state attributes of the procedures. For example, when a program 33 in execution in a subsystem 30 shown in the figure wants to use a procedure for searching a database, the program 33 passes necessary information such as the name of the database to be searched and a search key to a procedure executing unit 32 to request the execution of the procedure. After receiving the information, the procedure executing unit 32 makes an inquiry about the state attribute of the procedure for searching the database to a procedure management unit 14 of the management subsystem 10 through a communication line 52. If the procedure management unit 14 informs that the procedure for searching the database is in a usable state, the procedure executing unit 32 executes the procedure. Later on, the procedure executing unit 32 delivers the desired results of the execution to the program 33 which has been waiting for the results.
As described above, the procedure management unit 14 of the management subsystem 10 serves as a central unit for controlling the states of all procedures in the parallel processing system. In this case, requests to form a judgment as to whether or not the creation, use, updating or deletion of a procedure is allowable, which are made by other subsystems, are all issued to the management subsystem. As a result, processing loads are concentrated at only the management subsystem and, in addition, a program in another subsystem must suspend its execution until the management subsystem notifies the program that the status as to the creation, use, updating or deletion of the procedure is allowable, giving rise to a problem that it is difficult to maintain the processing efficiency at a high level for both the individual programs and the parallel processing system as a whole. Further, since data communication takes place among the subsystems, accompanying the requests to form a judgment as to whether or not the creation, use, updating or deletion of a procedure is allowable, in particular, in the case of execution of a program making an attempt to use a procedure, the fast response of which is regarded as important, there is also encountered a problem that a late notification of the status of the procedure from the management subsystem has a bad effect on the turn-around time of the program. In addition, if a failure occurs in the management subsystem, causing the procedure management unit not to function correctly, the disabled procedure management unit gives rise to another problem of producing a bad effect on the other subsystems in that programs of the other subsystems can not utilize the common procedures any more.
It is thus an object of the present invention to solve the problems described above by providing a parallel processing system wherein, by preventing processing loads from being concentrated at a particular subsystem so as to eliminate a bad effect of the concentration of processing loads at a particular subsystem on the turn-around time of a program utilizing a procedure, the processing efficiency of the parallel processing system can be maintained at a high level and, even if a subsystem has to suspend its function, there will be no effect on the operation of the parallel processing system as a whole.
In order to achieve the object described above, the present invention provides a parallel processing system that has a plurality of subsystems connected to each other to operate as a single system wherein each of the subsystems has a variety of procedures which can be created, used, updated or deleted by a program in execution therein and are each used for implementing predetermined processing. For each subsystem, a procedure management unit is used for controlling the states of the procedures. The procedure management unit includes a procedure-being-used table for cataloging procedures currently being used by a program in execution and a procedure-being-updated table for cataloging procedures which are presently being created or updated by a program in execution.
In this way, the number of requests made to another subsystem to form a judgment as to whether or not the creation, use, updating or deletion of a procedure is allowable can be decreased. In addition, the frequency at which the execution of a program is suspended during the time it takes to wait for a response to the request from another subsystem can also be reduced. It is thus possible to eliminate the concentration of processing loads at a particular subsystem and a bad effect on the turn-round time of the program. As a result, the processing efficiency of the parallel processing system can be maintained at a high level and, even if a subsystem has to suspend its function, the effect of the suspension on the operation of the parallel processing system as a whole can be avoided.